/**
 * 工具类
 * 2023-04-03 10:30:32
 */

/**
 * 格式校验
 */
export const format = {
    /**
     * 邮箱格式
     */
	emailFormat: new RegExp(
		"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$"
	),
    /**
     * 校验邮箱格式
     * @param email 邮箱
     * @returns 
     */
	isEmail(email:string) {
		return this.emailFormat.test(email);
	},
     /**
      * 手机号格式
      */
     phoneFormat: new RegExp("^1+\d{10}$"),
     /**
      * 校验手机号格式
      * @param phone 手机号
      * @returns 
      */
     isPhone(phone:string){
          return this.phoneFormat.test(phone);
     },
     /**
      * 用户名格式 字母开头，4到16位的字母、数字、下划线的组合
      */
     userNameFormat:new RegExp("^[a-zA-Z][a-zA-Z0-9_]{4,16}$"),
     /**
      * 校验用户名格式
      * @param userName 用户名
      * @returns 
      */
     isUserName(userName:string){
          return this.userNameFormat.test(userName);
     },
    /**
     * 验证码格式
     */
	codeFormat: new RegExp("^[a-zA-Z0-9]{6}$"),
	/**
     * 校验验证码格式
     * @param code 验证码
     * @returns 
     */
    isCode(code:string) {
		return this.codeFormat.test(code);
	},
    /**
     * 密码格式
     */
	passwordFormat: new RegExp("^[0-9A-Za-z]{6,16}$"),
	/**
     * 校验密码格式
     * @param password 密码
     * @returns 
     */
    isPassword(password:string) {
		return this.passwordFormat.test(password);
	}
}

  /**
   * 将一个数组，按照固定长度拆分成多个数组
   * @param array
   * @param num
   */
 export function sliceList<T>(array: Array<T>, num: number): Array<Array<T>> {
     if (array == undefined) {
       return [];
     }
     let index = 0;
     let arrTemp: Array<Array<T>> = new Array<Array<T>>();
     for (let i = 0; i < array.length; i++) {
       index = Math.floor(i / num);
       if (arrTemp.length <= index) {
         arrTemp.push(new Array<T>());
       }
       arrTemp[index].push(array[i]);
     }
     return arrTemp;
   }